translations not found
Array
(
[id] => 21
[short] => lwi
[languages] => Array
(
[0] => fr
[1] => nl
[2] => en
[3] => de
[4] => it
[5] => es
)
[canonical] => https://www.laurentwillen.be/%22+big[a]+%22/
[images] => https://images.laurentwillen.be
[language] => fr
)
Array
(
[country] => US
[city] => Santa Paula
[ip] => 216.73.216.104
[ua] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
[domain] => central.laurentwillen.be
[short_domain] => laurentwillen
[tld] => be
[uri] => /%22+big[a]+%22/
)
Array
(
[templates] => header_html,header_css,header_jsonld,header_js,title,content,footer
[modules] => Array
(
[home] => header,navigation,footer
[category] => header
[post] => header
)
[loader] => /svg/load.svg
)
Array
(
[href_lang] => Array
(
)
)
function deferLoading(data, element) {
const submitData = {
...data,
language: "",
resolution: `${window.screen.width * window.devicePixelRatio}x${window.screen.height * window.devicePixelRatio}`,
useragent: navigator.userAgent,
page: window.location.href,
product: "",
regex: "",
ads_id: ""
};
// Support for element being an array
if (Array.isArray(element)) {
element = element[0];
}
const el = document.getElementById(element);
if (el?.dataset?.device) {
submitData.device = el.dataset.device;
}
fetch(`/api/api_generic.php?action=${data.action}&random=${Math.random()}`, {
method: 'POST',
headers: new Headers(),
body: JSON.stringify({ data: submitData })
})
.then(resp => resp.json())
.then(response => {
if (response.success !== 1) {
if (response.validate?.failed === 1) {
alert("");
}
return;
}
if (element === "alert" || response.alert) {
alert(response.html);
} else if (submitData.overlay) {
const overlay = document.getElementById("overlay_foreground");
if (overlay) overlay.innerHTML += response.html;
} else if (el) {
el.style.display = "block";
el.innerHTML = response.html;
el.dataset.done = 1;
}
if (response.lib) {
switch (response.lib) {
case "GoogleCharts":
loadJS("https://www.gstatic.com/charts/loader.js");
const prices1 = JSON.parse(response.prices);
setTimeout(() => {
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(() => drawGoogleChart(prices1));
}, 1000);
break;
case "GoogleChartsScreens":
loadJS("https://www.gstatic.com/charts/loader.js");
const prices2 = JSON.parse(response.prices);
setTimeout(() => {
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(() => drawGoogleChartScreens(prices2, element));
}, 1000);
break;
}
}
// Execute inline scripts
if (el) {
const scripts = el.querySelectorAll("script");
scripts.forEach(script => {
if (script.innerText) eval(script.innerText);
});
}
})
.catch(err => console.error("Fetch error:", err));
}
function drawGoogleChart(prices) {
const data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('number', 'Price');
data.addRows(prices);
const options = {
curveType: 'function',
width: '100%',
height: 300,
chartArea: { width: '100%', height: '80%' },
legend: { position: 'none' }
};
const charts = [
{ id: 'chart_div', container: 'notifications_overlay' },
{ id: 'chart_div_notif', container: null },
{ id: 'chart_div_prices', container: null }
];
charts.forEach(chart => {
const chartEl = document.getElementById(chart.id);
if (chart.container) document.getElementById(chart.container).style.display = "block";
if (chartEl) new google.visualization.LineChart(chartEl).draw(data, options);
if (chart.container) document.getElementById(chart.container).style.display = "none";
});
}
function drawGoogleChartScreens(prices, element) {
const data = google.visualization.arrayToDataTable(prices);
const options = {
seriesType: 'bars',
width: '100%',
height: 500,
chartArea: { width: '90%', height: '80%' },
legend: { position: 'bottom', maxLines: 4 }
};
const chartLocation = document.getElementById(element)?.dataset?.device;
if (chartLocation) {
console.log('chart location: ' + chartLocation);
const chart = new google.visualization.ComboChart(document.getElementById(`${chartLocation}_chart`));
chart.draw(data, options);
}
}
page_type = '';
var observer = new IntersectionObserver(
(entries, observer) => {
entries.forEach(entry => {
let data = {};
if (entry.intersectionRatio > 0.0)
{
switch (entry.target.className)
{
case "defer_loading":
case "similar":
prepDefer(entry.target.id);
break;
case "gallery-wrapper":
done = entry.target.dataset.done;
small = entry.target.dataset.small.split(",");
big = entry.target.dataset.big.split(",");
if (done==0)
{
for (var a=0;a";
// document.getElementById(entry.target.id).innerHTML += "

";
}
document.getElementById(entry.target.id).dataset.done = 1;
}
break;
}
}
});
})
for (let gallery of document.getElementsByClassName('gallery-wrapper')) { observer.observe(gallery); }
for (let defer_loading of document.getElementsByClassName('defer_loading')) { observer.observe(defer_loading); }
function prepDefer(element)
{
element = element.split(",");
for (e=0;e